home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
Windows Expert
/
Windows Expert.iso
/
windownt
/
cshx86.zip
/
SAMPLES
/
EASTER.CSH
< prev
next >
Wrap
Text File
|
1993-04-14
|
1KB
|
34 lines
# Calculate when Easter will occur in any given year.
# Copyright (c) 1991 by Hamilton Laboratories. All rights reserved.
proc easter (year)
local a, b, c, d, e, f, g, h, i, k, l, m, n, month, day
set month = January February March April May June ^
July August September October November December
if (year == "") @ year = `date`:3
if (year >= 1583) then
# Gregorian calendar
@ a = year % 19; @ b = year // 100; @ c = year % 100
@ d = b // 4; @ e = b % 4; @ f = (b + 8) // 25
@ g = (b - f + 1) // 3
@ h = (19 * a + b - d - g + 15) % 30
@ i = c // 4; @ k = c % 4
@ l = (32 + 2 * e + 2 * i - h - k) % 7
@ m = (a + 11 * h + 22 * l) // 451
@ n = h + l - 7 * m + 114
@ month = month[n // 31 - 1]
@ day = n % 31 + 1
else
# Julian calendar
@ a = year % 4; @ b = year % 7; @ c = year % 19;
@ d = (19 * c + 15) % 30
@ e = (2 * a + 4 * b - d + 34) % 7
@ f = d + e + 114
@ month = month[f // 31 - 1]
@ day = f % 31 + 1
end
return "$month $day $year"
end
easter $argv